﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;
using DevExpress.Web.ASPxEditors;
using DevExpress.Web.ASPxGridView;
using System.Configuration;


public partial class OrdenCargueInternacionalListado : PageBase
{
    #region OrdenCargueInternacionalDataTableCache
    private DataTable OrdenCargueInternacionalDataTableCache
    {
        get
        {
            DataTable objTable = null;
            if (Cache["OrdenCargueInternacionalListado.aspx" + Session.SessionID] != null)
                objTable = (DataTable)Cache["OrdenCargueInternacionalListado.aspx" + Session.SessionID];
            return objTable;
        }
        set
        {
            if (value != null)
            {
                Cache.Insert("OrdenCargueInternacionalListado.aspx" + Session.SessionID, value, null, DateTime.Now.AddMinutes(20), TimeSpan.Zero);
            }
        }
    }
    #endregion

    #region Page_Load
    protected void Page_Load(object sender, EventArgs e)
    {


        if (!IsPostBack)
        {


            OrdenCargueInternacionalDataTableCache = null;
            bindDatosOrdenSalida();
        }
        else
        {
            if (OrdenCargueInternacionalDataTableCache != null)
            {
                ASPxGridViewOrdenSalida.DataSource = OrdenCargueInternacionalDataTableCache;
                ASPxGridViewOrdenSalida.DataBind();
            }
        }

    } 
    #endregion
    
    #region StrAosId
    public string StrAosId
    {
        get
        {
            if (ViewState["StrAosId"] != null)
                return ViewState["StrAosId"].ToString();
            return "";
        }
        set { ViewState["StrAosId"] = value; }
    }
    #endregion

    #region crearContextItems
    private void crearContextItems()
    {
        try
        {
            Context.Items["StrAosId"] = StrAosId;
        }
        catch (Exception ex)
        {
            ScriptManager.RegisterStartupScript(Page, Page.GetType(), "msg1_error", "alert('" + ex.Message.ToString() + "');", true);
        }
    }
    #endregion

    #region GetDataView
    private DataTable GetDataView(ASPxGridView grid)
    {
        DataTable dt = new DataTable();
        foreach (GridViewColumn col in grid.VisibleColumns)
        {
            GridViewDataColumn dataColumn = col as GridViewDataColumn;
            if (dataColumn == null) continue;
            dt.Columns.Add(dataColumn.FieldName);
        }
        for (int i = 0; i < grid.VisibleRowCount; i++)
        {
            DataRow row = dt.Rows.Add();
            foreach (DataColumn col in dt.Columns)
                row[col.ColumnName] = grid.GetRowValues(i, col.ColumnName);
        }
        return dt;
    }
    #endregion

    #region bindDatosOrdenSalida
    private void bindDatosOrdenSalida()
    {
        try
        {
            //string strAdministradores = ConfigurationManager.AppSettings["Administradores"].ToString();
            //string[] strArregloAdministradores = strAdministradores.Split(',');
            

            #region Filrta el grid con por usuario




            Model.DataClassesAutosolDataContext contexto = new Model.DataClassesAutosolDataContext(ConfigurationManager.AppSettings["Conn"]);
            var datos = from a in contexto.AUT_ORDEN_SALIDAs
                        join d in contexto.AUT_VEHICULOs on a.AVE_ID_CABEZOTE equals d.AVE_ID
                        join e in contexto.AUT_VEHICULOs on a.AVE_ID_TRAILER equals e.AVE_ID
                        join f in contexto.AUT_ESTADOS_ORDEN_SALIDAs on a.AES_ID equals f.AES_ID
                        join g in contexto.AUT_PERSONALs on a.APE_ID equals g.APE_ID
                        orderby a.AOS_ID descending
                        where
                            a.AOS_ESTADO == "I"
                        select new
                        {
                            a.AOS_ID,
                            CABEZOTE = d.AMA_PLACA,
                            TRAILER = e.AMA_PLACA,
                            a.AOS_FECHA_SOLICITUD,
                            a.AOS_FECHA_ASIGNACION,
                            a.AOS_FECHA_ENTREGA,
                            AOS_ESTADO = f.AES_NOMBRE,
                            a.AOS_FECHA_CREACION,
                            g.APE_NOMBRE
                        };


            if (datos == null) return;
            ASPxGridViewOrdenSalida.BeginUpdate();
            ASPxGridViewOrdenSalida.DataSource = datos;// objProductosComercialesRendimientosData.DefaultView;
            ASPxGridViewOrdenSalida.DataBind();
            ASPxGridViewOrdenSalida.EndUpdate();
            OrdenCargueInternacionalDataTableCache = GetDataView(ASPxGridViewOrdenSalida);
            #endregion
            // break;
            //}
            //else
            //{
            //    #region Filrta el grid con por usuario
            //    //string strProNid = "0";
            //    //if (!String.IsNullOrEmpty(Session["USU_NIT"].ToString()))
            //    //    strProNid = Session["USU_NIT"].ToString();
            //    //Consulta a la base de datos
            //    DataClasses.DataClassesProyectosDataContext contexto = new DataClasses.DataClassesProyectosDataContext();
            //    var datos = from a in contexto.APP_PROPONENTEs
            //                join b in contexto.APP_PROYECTOs on a.PRO_ID equals b.PRO_ID_PROPONENTE
            //                where object.Equals(a.PRO_NIT, Session["USU_NIT"].ToString()) && object.Equals(b.VIG_ID, ConfigurationManager.AppSettings["IDVigencia"].ToString())
            //                select new
            //                {
            //                    b.PRO_ID,
            //                    b.PRO_NOMBRE,
            //                    b.PRO_VALOR_PROYECTO,
            //                    a.PRO_NIT,
            //                    a.PRO_CORREO_ELECTRONICO_REPRESENTANTE_LEGAL,
            //                    PRO_ESTADO = contexto.FN_ESTADO_PROYECTO(b.PRO_ESTADO),
            //                    b.PRO_NUMERO_RADICACION
            //                }
            //                ;


            //    if (datos == null) return;
            //    ASPxGridViewOrdenSalida.BeginUpdate();
            //    ASPxGridViewOrdenSalida.DataSource = datos;// objProductosComercialesRendimientosData.DefaultView;
            //    ASPxGridViewOrdenSalida.DataBind();
            //    ASPxGridViewOrdenSalida.EndUpdate();
            //    ProyectosProponentesDataTableCache = GetDataView(ASPxGridViewListadoProyectos);
            //    #endregion
            //    //break;
            //}
            //}
        }
        catch (Exception ex)
        {
            ex.Message.ToString();
            //throw;
        }
    }
    #endregion

    #region btnNuevo_Click
    protected void btnNuevo_Click(object sender, EventArgs e)
    {

        Server.Transfer("OrdenCargueInternacional.aspx?SSM_ID=54", true);
    }
    #endregion

    #region btnActualizar_Click
    protected void btnActualizar_Click(object sender, EventArgs e)
    {
        List<object> keyValues = ASPxGridViewOrdenSalida.GetSelectedFieldValues("AOS_ID");
        Model.DataClassesAutosolDataContext contexto = new Model.DataClassesAutosolDataContext(ConfigurationManager.AppSettings["Conn"]);
        try
        {
            foreach (object key in keyValues)
            {
                StrAosId = key.ToString();
            }
            crearContextItems();
            Server.Transfer("OrdenCargueInternacional.aspx?SSM_ID=54", true);
            //Response.Redirect("EntidadesAdministracion.aspx", true);
        }
        catch (Exception ex)
        {
            ScriptManager.RegisterStartupScript(Page, Page.GetType(), "msg1_error", "alert('" + ex.Message.ToString() + "');", true);
        }
    }
    #endregion

    #region btnRemesa_Click
    protected void btnRemesa_Click(object sender, EventArgs e)
    {
        //Pasar las tres variable para el reporte
        //Session["ESTADO"] = ddlEstadosOrden.Value.ToString();
        //Session["FECHA_INICIAL"] = txtFechaInicio.Text;
        //Session["FECHA_FINAL"] = txtFechaFinal.Text;
        //string strCadenaClientes = "";
        //List<object> keyValues = ASPxGridViewOrdenSalida.GetSelectedFieldValues("AOS_ID");
        //try
        //{
        //    foreach (object key in keyValues)
        //    {
        //        if (strCadenaClientes == "")
        //            strCadenaClientes = key.ToString();
        //        else
        //            strCadenaClientes = strCadenaClientes + "," + key.ToString();
        //    }
        //    Session["CLIENTES"] = strCadenaClientes;

            System.Text.StringBuilder l_msg = new System.Text.StringBuilder();
            //TODO: Revisar esta impresión.
            l_msg.Append(@"<script language=javascript>");
            l_msg.Append(@"window.open('ManifiestoCargueInternacioinal.aspx" + @"', 'VentanaImpresion','location=0, status=0, directories=0, width=800, height=600, resizable=no, hotkeys=no, scrollbars=yes, toolbar=no, menubar=no, personalbar=no');</script>");
            Response.Write(l_msg.ToString());

            //Response.Redirect("EntidadesAdministracion.aspx", true);
        //}
        //catch (Exception ex)
        //{
        //    ScriptManager.RegisterStartupScript(Page, Page.GetType(), "msg1_error", "alert('" + ex.Message.ToString() + "');", true);
        //}

    } 
    #endregion

    protected void btnRemesa_Click1(object sender, EventArgs e)
    {
        //Pasar las tres variable para el reporte
        //Session["ESTADO"] = ddlEstadosOrden.Value.ToString();
        //Session["FECHA_INICIAL"] = txtFechaInicio.Text;
        //Session["FECHA_FINAL"] = txtFechaFinal.Text;
        string strCadenaClientes = "";
        List<object> keyValues = ASPxGridViewOrdenSalida.GetSelectedFieldValues("AOS_ID");
        try
        {
            foreach (object key in keyValues)
            {
                if (strCadenaClientes == "")
                    strCadenaClientes = key.ToString();
                else
                    strCadenaClientes = strCadenaClientes + "," + key.ToString();
            }
            Session["CLIENTES"] = strCadenaClientes;

            System.Text.StringBuilder l_msg = new System.Text.StringBuilder();
            //TODO: Revisar esta impresión.
            l_msg.Append(@"<script language=javascript>");
            l_msg.Append(@"window.open('DespachoReporte.aspx" + @"', 'VentanaImpresion','location=0, status=0, directories=0, width=800, height=600, resizable=no, hotkeys=no, scrollbars=yes, toolbar=no, menubar=no, personalbar=no');</script>");
            Response.Write(l_msg.ToString());

            //Response.Redirect("EntidadesAdministracion.aspx", true);
        }
        catch (Exception ex)
        {
            ScriptManager.RegisterStartupScript(Page, Page.GetType(), "msg1_error", "alert('" + ex.Message.ToString() + "');", true);
        }
    }
    #region btnRemesaGM_Click

    protected void btnRemesaGM_Click(object sender, EventArgs e)
    {

        //Pasar las tres variable para el reporte
        //Session["ESTADO"] = ddlEstadosOrden.Value.ToString();
        //Session["FECHA_INICIAL"] = txtFechaInicio.Text;
        //Session["FECHA_FINAL"] = txtFechaFinal.Text;
        string strCadenaClientes = "";
        List<object> keyValues = ASPxGridViewOrdenSalida.GetSelectedFieldValues("AOS_ID");
        try
        {
            foreach (object key in keyValues)
            {
                if (strCadenaClientes == "")
                    strCadenaClientes = key.ToString();
                else
                    strCadenaClientes = strCadenaClientes + "," + key.ToString();
            }
            Session["CLIENTES"] = strCadenaClientes;

            System.Text.StringBuilder l_msg = new System.Text.StringBuilder();
            //TODO: Revisar esta impresión.
            l_msg.Append(@"<script language=javascript>");
            l_msg.Append(@"window.open('DespachoReporteGM.aspx" + @"', 'VentanaImpresion','location=0, status=0, directories=0, width=800, height=600, resizable=no, hotkeys=no, scrollbars=yes, toolbar=no, menubar=no, personalbar=no');</script>");
            Response.Write(l_msg.ToString());

            //Response.Redirect("EntidadesAdministracion.aspx", true);
        }
        catch (Exception ex)
        {
            ScriptManager.RegisterStartupScript(Page, Page.GetType(), "msg1_error", "alert('" + ex.Message.ToString() + "');", true);
        }

    }
    #endregion

}



